#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


//void reverse(int* start, int* end)
//{
//    while (end - start > 0)
//    {
//        int tmp = *start;
//        *start++ = *end;
//        *end--= tmp;
//    }
//}
//void rotate(int* nums, int numsSize, int k) {
//    /*char* end2 = nums + k + numsSize-1;
//    char* end1 = nums + k;
//    int count = k;
//
//    while( (k >= 0)&&(*end1!=*end2))
//    {
//        *end2-- = *end1--;
//        count--;
//    }*/
//    k %= numsSize;
//    for (int i = 0; i < numsSize; i++)
//    {
//        printf("%d", *(nums + i));
//    }
//    printf("\n");
//    reverse(nums, nums +numsSize-1);
//    for (int i = 0; i < numsSize;i++)
//    {
//        printf("%d", *(nums + i));
//    }
//    printf("\n");
//    reverse(nums, nums + k -1);
//    for (int i = 0; i < numsSize; i++)
//    {
//        printf("%d", *(nums + i));
//    }
//    printf("\n");
//
//    reverse(nums+k, nums + numsSize - 1);
//    for (int i = 0; i < numsSize; i++)
//    {
//        printf("%d", *(nums + i));
//    }
//    printf("\n");
//
//
//}

//#include <stdlib.h>
//void rotate(int* nums, int numsSize, int k) {
//    int *a=(int*)malloc((k + 1+numsSize)*sizeof(int));
//    if (a == NULL)
//    {
//        return 1;
//    }
//    k %= numsSize;
//    int* end2 = nums + k + numsSize;
//    int* end1 = nums +numsSize;
//    int count = k;
//
//    while (count >= 0) 
//    {
//        if (count == k)
//        {
//        *end2-- = *end1--;
//        end1 -=( numsSize + k);
//        }
//        else
//        {
//            *end2-- = *end1--;
//        }
//        count--;
//    }
//    
//    for (int i = 0; i < numsSize; i++)
//    {
//        printf("%d", *(a + i));
//    }
//    free(a);
//    a = NULL;
//}
//int main()
//{
//    int nums[] = { 1,2,3,4,5,6 };
//    int numsSize = sizeof(nums) / sizeof(nums[0]);
//    rotate(nums, numsSize, 2);
//    
//    return 0;
//}


//#include <stdlib.h>
//#include <string.h>
//void r(int* nums, int len, int k)
//{
//	
//	int* a = (int*)malloc(sizeof(int) * len);
//
//	if (a == NULL)
//	{
//		return 1;
//	}
//	memcpy(a , nums+k, len*sizeof(int) - k * sizeof(int));
//	memcpy(a+len-k, nums, k * sizeof(int));
//	    for (int i = 0; i < len; i++)
//	    {
//	        printf("%d", *(a + i));
//	    }
//	free(a);
//	a = NULL;
//}
//int main()
//{
//	int nums[] = { 1,2,3,4,5,6 };
//	int numsSize = sizeof(nums) / sizeof(nums[0]);
//	r(nums, numsSize, 2);
//	
//	return 0;
//}